home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat3 / libblas / her2k.z / her2k
Encoding:
Text File  |  1998-10-30  |  12.7 KB  |  265 lines

  1.  
  2.  
  3.  
  4. ____HHHHEEEERRRR2222KKKK((((3333FFFF))))                                                          ____HHHHEEEERRRR2222KKKK((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      zher2k, cher2k - BLAS level three   Hermitian Rank 2K Update
  10.  
  11.  
  12. FFFFOOOORRRRTTTTRRRRAAAANNNN 77777777 SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  13.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzhhhheeeerrrr2222kkkk(((( uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  14.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  15.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  16.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  17.            ddddoooouuuubbbblllleeee ccccoooommmmpppplllleeeexxxx     aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  18.  
  19.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee cccchhhheeeerrrr2222kkkk(((( uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  20.            cccchhhhaaaarrrraaaacccctttteeeerrrr****1111        uuuupppplllloooo,,,, ttttrrrraaaannnnssss
  21.            iiiinnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc
  22.            ccccoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa
  23.            ccccoooommmmpppplllleeeexxxx            aaaa(((( llllddddaaaa,,,,****)))),,,, bbbb(((( llllddddbbbb,,,,****)))),,,, cccc((((llllddddcccc,,,,****))))
  24.  
  25.  
  26. CCCC SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  27.      ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee zzzzhhhheeeerrrr2222kkkk(((( uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  28.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  29.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  30.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  31.            ZZZZoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  32.            ZZZZoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  33.  
  34.      vvvvooooiiiidddd zzzzhhhheeeerrrr2222kkkk(((( uuuupppplllloooo,,,,ttttrrrraaaannnnssss,,,,nnnn,,,,kkkk,,,,aaaallllpppphhhhaaaa,,,,aaaa,,,,llllddddaaaa,,,,bbbb,,,,llllddddbbbb,,,,bbbbeeeettttaaaa,,,,cccc,,,,llllddddcccc ))))
  35.            MMMMaaaattttrrrriiiixxxxTTTTrrrriiiiaaaannnngggglllleeee     uuuupppplllloooo;;;;
  36.            MMMMaaaattttrrrriiiixxxxTTTTrrrraaaannnnssssppppoooosssseeee    ttttrrrraaaannnnssss;;;;
  37.            IIIInnnntttteeeeggggeeeerrrr            nnnn,,,, kkkk,,,, llllddddaaaa,,,, llllddddbbbb,,,, llllddddcccc;;;;
  38.            CCCCoooommmmpppplllleeeexxxx            aaaallllpppphhhhaaaa,,,, bbbbeeeettttaaaa;;;;
  39.            CCCCoooommmmpppplllleeeexxxx            ((((****aaaa))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****bbbb))))[[[[llllddddaaaa****kkkk]]]],,,, ((((****cccc))))[[[[llllddddaaaa****nnnn]]]];;;;
  40.  
  41.  
  42.  
  43. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  44.      zzzzhhhheeeerrrr2222kkkk and cccchhhheeeerrrr2222kkkk perform one of the hermitian rank 2k operations
  45.  
  46.            C := alpha*A*conjg( B' ) + conjg( alpha )*B*conjg( A' ) + beta*C,
  47.  
  48.      or
  49.  
  50.            C := alpha*conjg( A' )*B + conjg( alpha )*conjg( B' )*A + beta*C,
  51.  
  52.      where alpha and beta are scalars with beta real, C is an n by n hermitian
  53.      matrix and A and B are n by k matrices in the first case and k by n
  54.      matrices in the second case.
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. ____HHHHEEEERRRR2222KKKK((((3333FFFF))))                                                          ____HHHHEEEERRRR2222KKKK((((3333FFFF))))
  71.  
  72.  
  73.  
  74. PARAMETERS
  75.      uuuupppplllloooo    On entry, uuuupppplllloooo specifies whether the matrix is an upper or lower
  76.              triangular matrix as follows:
  77.  
  78.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  79.              uplo = 'U' or 'u'   Only the upper triangular part of C
  80.                                  is to be referenced.
  81.              uplo = 'L' or 'l'   Only the lower triangular part of C
  82.                                  is to be referenced.
  83.  
  84.              CCCC
  85.              uplo = UpperTriangle     Only the upper triangular part of C
  86.                                       is to be referenced.
  87.              uplo = LowerTriangle     Only the lower triangular part of C
  88.                                       is to be referenced.
  89.  
  90.              Unchanged on exit.
  91.  
  92.      ttttrrrraaaannnnssss   On entry, ttttrrrraaaannnnssss specifies the operation to be performed as
  93.              follows:
  94.  
  95.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  96.              trans = 'N' or 'n'            C := alpha*A*conjg( B' )          +
  97.                                                 conjg( alpha )*B*conjg( A' ) +
  98.                                                 beta*C.
  99.              trans = 'C' or 'c'            C := alpha*conjg( A' )*B          +
  100.                                                 conjg( alpha )*conjg( B' )*A +
  101.                                                 beta*C.
  102.  
  103.              CCCC
  104.              trans = NoTranspose           C := alpha*A*conjg( B' )          +
  105.                                                 conjg( alpha )*B*conjg( A' ) +
  106.                                                 beta*C.
  107.              trans = ConjugateTranspose    C := alpha*conjg( A' )*B          +
  108.                                                 conjg( alpha )*conjg( B' )*A +
  109.                                                 beta*C.
  110.  
  111.              Unchanged on exit.
  112.  
  113.      nnnn       On entry, nnnn specifies the order of the matrix C. nnnn must be at
  114.              least zero.
  115.              Unchanged on exit.
  116.  
  117.      kkkk       On entry with, trans = 'N' or 'n' or NoTranspose kkkk specifies the
  118.              number of columns of the matrices A and B, and on entry with
  119.              trans = 'T' or 't' or Transpose, kkkk specifies  the number of rows
  120.              of the matries A and B.  K must be at least zero.
  121.              Unchanged on exit.
  122.  
  123.      aaaallllpppphhhhaaaa   specifies the scalar alpha.
  124.              Unchanged on exit.
  125.  
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. ____HHHHEEEERRRR2222KKKK((((3333FFFF))))                                                          ____HHHHEEEERRRR2222KKKK((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      aaaa       An array containing the matrix A.
  141.  
  142.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  143.              Array of dimension (lda, ka).
  144.  
  145.              CCCC
  146.              A pointer to an array of size lda*ka.
  147.              See note below about array storage convention for C.
  148.  
  149.              kkkkaaaa is kkkk when transa = 'N' or 'n' or NoTranspose and is nnnn
  150.              otherwise.  Before entry with trans = 'N' or 'n' or NoTranspose,
  151.              the leading n by k part of the array aaaa must contain the matrix A,
  152.              otherwise the leading  k by n part of the array aaaa must contain
  153.              the matrix A.
  154.  
  155.              Unchanged on exit.
  156.  
  157.      llllddddaaaa     On entry, llllddddaaaa specifies the first dimension of aaaa as declared in
  158.              the calling (sub) program. When  transa = 'N' or 'n' or
  159.              NoTranspose, then lda must be at least max( 1, n ), otherwise lda
  160.              must be at least  max( 1, k ).
  161.              Unchanged on exit.
  162.  
  163.      bbbb       An array containing the matrix B.
  164.  
  165.              FFFFOOOORRRRTTTTRRRRAAAANNNN
  166.              Array of dimension (lda, kb).
  167.  
  168.              CCCC
  169.              A pointer to an array of size lda*kb.
  170.              See note below about array storage convention for C.
  171.  
  172.              kkkkbbbb is kkkk when transa = 'N' or 'n' or NoTranspose and is nnnn
  173.              otherwise.  Before entry with trans = 'N' or 'n' or NoTranspose,
  174.              the leading n by k part of the array bbbb must contain the matrix B,
  175.              otherwise the leading  k by n part of the array bbbb must contain
  176.              the matrix B.
  177.  
  178.              Unchanged on exit.
  179.  
  180.      llllddddbbbb     On entry, llllddddbbbb specifies the first dimension of bbbb as declared in
  181.              the calling (sub) program. When  trans = 'N' or 'n' or
  182.              NoTranspose, then ldb must be at least max( 1, n ), otherwise lda
  183.              must be at least  max( 1, k ).
  184.              Unchanged on exit.
  185.  
  186.        The matrices  are assumed  to be stored in a  oooonnnneeee ddddiiiimmmmeeeennnnssssiiiioooonnnnaaaallll CCCC aaaarrrrrrrraaaayyyy
  187.        in an analogous fashion as a Fortran array (column major). Therefore,
  188.        the element  A(i+1,j)  of matrix A  is stored  immediately  after the
  189.        element  A(i,j), while  A(i,j+1) is lda  elements apart from  A(i,j).
  190.        The element A(i,j) of the matrix can be accessed directly by reference
  191.        to  a[ (j-1)*lda + (i-1) ].
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. ____HHHHEEEERRRR2222KKKK((((3333FFFF))))                                                          ____HHHHEEEERRRR2222KKKK((((3333FFFF))))
  203.  
  204.  
  205.  
  206. AAAAUUUUTTTTHHHHOOOORRRRSSSS
  207.           Jack Dongarra, Argonne National Laboratory.
  208.           Iain Duff, AERE Harwell.
  209.           Jeremy Du Croz, Numerical Algorithms Group Ltd.
  210.           Sven Hammarling, Numerical Algorithms Group Ltd.
  211.  
  212.  
  213. TTTTUUUUNNNNIIIINNNNGGGG
  214.           Optimized and parallelized for SGI R3000, R4x00 and R8000 platforms.
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.                                                                         PPPPaaaaggggeeee 4444
  262.  
  263.  
  264.  
  265.